Computing systems often organize data into databases, a common type of database called a relational database. In order to simplify the process of performing common sets of data operations on a relational database, such common sets of data operations are organized into a stored procedure. Accordingly, when interfacing with a database, a component can either perform data operations directly on the relational database, but also often has the option of interfacing with the database using one or more stored procedures.
A service is a collection of one or more machines that operate to perform a set of one or more functions for a collection of one or more requestors. Such requestors are often termed “customers” of the service. Customers of the service could be human users (such as when the service is an e-mail service), may be other services or components (such as when the service is a metadata service) or may be a combination thereof (such as when the service is a storage service). In any case, services often relay on an underlying relational database to maintain and track important data that the services uses to provide the set of service functions.
When upgrading the service, there is typically some service downtime. During the service downtime, the relational database is upgraded, and the machines of the service are reconfigured to interact with the upgraded relational database. The service is then made available again. However, during such service downtime, customers often do not have beneficial use of the service.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one exemplary technology area where some embodiments described herein may be practiced.